This application is based on application Ser. Nos. 10-218802 and 11-084807 filed in Japan, the contents of which are hereby incorporated by reference.
1. Field of the Invention
The present invention relates to a digital broadcast receiving apparatus and a digital broadcast transmitting apparatus, and in particular relates to a technique for replacing a control program currently used in the digital broadcast receiving apparatus with a new control program sent from the digital broadcast transmitting apparatus.
2. Description of the Prior Art
Nowadays, video, audio, and other various types of data are broadcasted through digital broadcasting that uses MPEG (Moving Picture Experts Group) transport streams or the like.
FIG. 1 is a diagrammatic sketch of a digital broadcast transmitting apparatus under MPEG standard.
This transmitting apparatus includes a plurality of encoders 601 that each digitize video and audio of a different one of a plurality of broadcast programs and encode and compress the digitized video and audio to produce video and audio streams, a data generator 602 for generating a data stream from service information such as program specific information and program information, a multiplexer 603 for performing time division multiplexing on the data stream and video and audio streams of the plurality of broadcast programs to create multiplexed transport stream packets, and a modulator 604 for digitally modulating the transport stream packets to generate a transmittable modulated wave.
That is to say, video streams and audio streams generated by the plurality of encoders 601 and a data stream generated by the data generator 602 are multiplexed in time division by the multiplexer 603 to produce MPEG2 multiplexed transport stream packets, which are then digitally modulated by the modulator 604 to create a modulated wave.
FIG. 1 shows three sets of the above units that generate a modulated wave. Three modulators 604 generate modulated waves of different frequencies and output them onto a transmission line (e.g. radio wave or cable). In digital satellite broadcasting, since as many modulated waves as transponders equipped in a satellite (not illustrated) can be simultaneously transmitted, the modulated waves generated by the three modulators 604 are concurrently broadcasted to a plurality of digital broadcast receiving apparatuses via transponders corresponding to the respective three modulators 604.
FIG. 2 is a diagrammatic sketch of a digital broadcast receiving apparatus under MPEG standard.
This receiving apparatus includes a tuner 901 for selectively receiving a modulated wave including a channel designated by a user among the modulated waves transmitted via the transmission line, a demodulator 902 for digitally demodulating the received modulated wave to acquire multiplexed transport stream packets, a demultiplexer 903 for separating the multiplexed transport stream packets into a data stream and video and audio streams of a plurality of broadcast programs, a transport decoder (hereinafter xe2x80x9cTDxe2x80x9d) 904 for extracting a necessary stream, an audio decoder 905 for decompressing and decoding an extracted audio stream and converting the audio stream into analog form to generate audio signals, video decoder 906 for decompressing and decoding an extracted video stream to generate video information, a video decoder memory 907 used by the video decoder 906 as a work area, a CPU 908 for controlling each component of the receiving apparatus, a flash memory 909 for storing a control program of the CPU 908, a DRAM (dynamic RAM) 910 for storing service information and display information included in the data stream, an EEPROM (electrically erasable and programmable ROM) 911 for storing information which needs to be retained while the power of the receiving apparatus is off, a display generator 912 for merging the video information and the service information to generate video signals, and a CPU bus 913 for connecting each component of the receiving apparatus for data transfer. Here, the CPU bus 913 is connected to the tuner 901, demodulator 902, TD 904, CPU 908, flash memory 909, DRAM 910, EEPROM 911, and display generator 912, and is used for control of the CPU 908 or data transfer such as DMA (direct memory access) transfer.
In addition to the above components of the receiving apparatus, the figure also shows a speaker 914 for converting the audio signals generated by the audio decoder 905 into sounds and a monitor 915 for generating images from the video signals created by the display generator 912.
The overall operation of the digital broadcast receiving apparatus is as follows. The modulated wave received by the tuner 901 is demodulated by the demodulator 902 to acquire multiplexed transport stream packets, which are then separated by the demultiplexer 903 into different streams from which a necessary stream is extracted by the TD 904. An extracted audio stream is converted into audio signals by the audio decoder 905 and further converted into sounds via the speaker 914. An extracted video stream is converted into video information by the video decoder 906 and merged with service information by the display generator 912, and as a result images are displayed on the monitor 915. Here, service information included in an extracted data stream is stored in the DRAM 910 and only the information designated by the user is transferred to the display generator 912 via the TD 904 to be merged with the video information.
The unit of data transfer of transport stream packets from the digital broadcast transmitting apparatus to the digital broadcast receiving apparatus is referred to as xe2x80x9cpacketxe2x80x9d, with information being transmitted in units of packets irrespective of the type of the information. The size of each packet is typically 188 bytes.
The structure of data such as the service information stored in the DRAM 910 is called xe2x80x9csection structurexe2x80x9d, with a set of section structured data being called xe2x80x9ctablexe2x80x9d.
FIG. 3 shows a section structure table.
This table contains table_id, table_id_extension, and section_length.
Table_id and table_id_extension are used by the TD 904 to extract a desired table.
Table_id is an identifier indicating a type of the table, whereas table_id_extension is an external identifier showing the type indicated by the table ID in more details.
Section_length shows a total data size (number of bytes) of section made up of data_bytes which are each 8 bits (1 byte) long.
When services provided by a broadcast station change, it becomes necessary to rewrite a control program which is currently used in the digital broadcast receiving apparatus. There are various methods for replacing the currently used control program with a new control program. One of such methods is that the digital broadcast receiving apparatus receives the new control program from the broadcast station and replaces the current control program with the new control program. Although this method is relatively convenient for the user as it is easily performed within a short time, hardware and software for rewriting the control program needs to be equipped in the digital broadcast receiving apparatus.
FIG. 4 shows the form of transmitting a control program in digital satellite broadcasting. In the figure, the control program is sent from a broadcast station to a digital broadcast receiving apparatus of the user via a satellite together with video data and audio data.
The following is a description of replacing a control program currently used in the digital broadcast receiving apparatus with a new control program sent from the digital broadcast transmitting apparatus.
A digital broadcast receiving apparatus that has a control program download function usually stores a control program in a rewritable flash memory.
FIG. 5A shows a memory map of the flash memory 909 that stores a control program.
The control program stored in the flash memory 909 includes a reception program, a download program, an OS, and a device driver. In addition to this control program, the flash memory 909 also stores a boot program.
A control program holds data of around several megabytes and is typically transmitted in units of packets. Accordingly, when downloading a new control program, the digital broadcast receiving apparatus cannot rewrite the currently used control program until the whole new control program is received and processed. Hence, to store received packets of the new control program, the digital broadcast receiving apparatus has to be equipped with a memory with a minimum capacity equal to the data size of the whole new control program, apart from the flash memory 909 that stores the current control program. In the digital broadcast receiving apparatus of the present example, received data of the new control program is stored in the DRAM 910.
FIG. 5B shows a memory map of the DRAM 910 that stores the new control program.
The structure of the new control program stored in the DRAM 910 is the same as the control program in the flash memory 909. The DRAM 910 is used as a work area of the CPU 908 when it is not being used for download of the new control program.
The digital broadcast transmitting apparatus has the data generator 602 generate a data stream from the new control program which is to be sent, has the modulator 604 generate a modulated wave using the data stream in the same way as the above mentioned service information, and outputs the modulated wave onto the transmission line.
The digital broadcast receiving apparatus receives the modulated wave including the data stream generated from the new control program via the tuner 901, under the control of the CPU 908 that executes the control program stored in the flash memory 909. Once the data stream has been extracted by the TD 904 and stored in the DRAM 910 according to the section structure, data of the new control program is extracted and stored in an empty area of the DRAM 910. When the whole new control program is stored in the DRAM 910, the new control program is written over the control program stored in the flash memory 909.
As for data format of the transmitted new control program, a download control table (DCT) and download table (DLT) that conform to ARIB (Association of Radio Industries and Businesses) STD-B16 are normally used, though it is also possible for each broadcast station to use a unique format. The DCT and the DLT are both section structure tables.
FIG. 6 shows the format of a DCT.
The DCT includes table_id, section_length, transport_stream_id, DL_PID (download packed ID), model_info_length (model information length), and sets of model_info (model information).
Table_id shows xe2x80x9c0xC0xe2x80x9d as a table ID of the DCT.
Transport_stream_id is an identifier of a transport stream and specifies a frequency of a modulated wave which is to be received by the tuner 901.
DL_PID is an identifier of a packet which is to be extracted by the TD 904.
Model_info_length shows a total data size of the sets of model_info in bytes.
Each set of model_info includes maker_id identifying a manufacturer of a digital broadcast receiving apparatus, model_id identifying a model of the receiving apparatus, and version_id identifying a software version of the receiving apparatus.
FIG. 7 shows the format of a DLT.
The DLT includes table_id, section_length, maker_id, model_id, version_id, and code_data_bytes. In the DCT, data from table_id to immediately before a model information field is called a section header.
Table_id shows xe2x80x9c0xC1xe2x80x9d as a table ID of the DLT.
Section_length is xe2x80x9c0x89Cxe2x80x9d without exception.
Maker_id, model_id, and version_id are the same as the DCT.
Code_data_bytes represent the main body of the software and are 8 bitsxc3x972048 (2 Kbytes) long.
For details on the DCT and DLT, see ARIB, CS Digital Broadcast Standard Shared Receiver: ARIB STANDARD, ARB STD-B16 the 1.0th edition, pp 12xcx9c16.
DCTs are multiplexed into every modulated wave received by the digital broadcast receiving apparatus.
The digital broadcast receiving apparatus receives any of the modulated waves sent from the digital broadcast transmitting apparatus and has the TD 904 filter DCTs multiplexed in the received modulated wave, under the control of the CPU 908 that executes the download program stored in the flash memory 909. The filtered DCTs are buffered in the DRAM 910 and the CPU 908 judges whether there is appropriate DLTS, based on maker_id, model_id, and version_id shown in each DCT.
On judging that there is appropriate DLTs, the CPU 908 instructs the display generator 912 to display on the monitor 915 a message for notifying the user that the new control program can be downloaded.
FIG. 8 is a flowchart showing a conventional control program rewriting method.
(1) When the user gets the message and requests the download of the new control program, the tuner 901 receives a modulated wave identified by transport_stream_id in a DCT with which it has been judged that appropriate DLTs exist (S91).
(2) The received modulated wave is demodulated by the demodulator 902, separated by the demultiplexer 903 into different streams, and filtered by the TD 904. As a result, an appropriate DLT is obtained and stored in the DRAM 910 (S92).
(3) The CPU 908 stores code_data_bytes included in the DLT stored in the DRAM 910 into an empty area of the DRAM 910 (S93).
(4) It is judged whether the whole data of the new control program has been stored in the DRAM 910. If not, steps S92xcx9cS93 are repeated until the whole data is stored (S94).
(5) Once the new control program has completely been stored, the CPU 908 writes the new control program over the control program in the flash memory 909 (S95).
(6) When the download of the new control program has finished, the new control program is booted (S96).
Thus, in the conventional control program downloading method the rewriting of the control program in the flash memory 909 does not begin until the transmitted new control program is completely stored in the DRAM 910.
In this conventional technique, a main RAM with a capacity at least equal to the size of the control program must be equipped in the digital broadcast receiving apparatus for rewriting the control program. On the other hand, there is an alternative method whereby the flash memory is made dual while the capacity of the main RAM is limited to no more than necessary for processing other than the control program download, where one memory area is used for storing the current control program and the other for storing the new control program received from the broadcast station.
However, since neither the main RAM with a capacity for a whole control program nor the dual flash memory is necessary for processing other than the control program download, it is not desirable to bring up the price of the receiving apparatus by including such components that are unnecessary during normal control.
Also, to limit the capacity of the main RAM, there is a division downloading method of dividing the new control program into smaller parts than the capacity of the main RAM and replacing the current control program with the new control program in units of parts.
However, a control program usually includes a program for controlling rewriting of the control program, so that partially rewriting the control program causes inability to control the rewriting processing per se and thus the control program cannot be rewritten in divided units. Therefore, the capacity of the main RAM needs to be at least no less than the data size of the control program.
In the case of one-way transmission of a control program from a broadcast station as in digital satellite broadcasting, the control program is sent in cycles. To download a specific program from its beginning, the user may have to wait a whole cycle of control program transmission in the worst case. For instance, if a repeat cycle of a control program in a digital satellite broadcast station is of the order of 8.5 minutes, the processing time may be prolonged by as much as 8.5 minutes, that causes real inconvenience on the part of the user.
The present invention aims to provide a control program transmitting method, control program downloading method, computer-readable storing medium storing a control program transmission program, computer-readable storing medium storing a control program, control program transmitting apparatus, and control program downloading apparatus that can limit the necessary memory capacity and reduce the cycle wait time when a program receiving apparatus, such as a digital broadcast receiving apparatus, rewrites a control program.
The above stated object can be fulfilled by a control program transmitting method for transmitting a control program of a program receiving apparatus, the control program transmitting method including: an acquiring step for acquiring the control program made up of an update program to be used in the program receiving apparatus for download of the control program and a non-update program to be used in the program receiving apparatus for processing other than the download of the control program; a dividing step for dividing each of the update program and the non-update program into divisions which are each accompanied by a serial number; an identifier appending step for appending a first identifier and a second identifier respectively to each division of the update program and each division of the non-update program; and a transmitting step for repeatedly transmitting, in sequence, every division to which any of the first identifier and the second identifier is appended.
The above object can also be fulfilled by a control program downloading method that is used by a program receiving apparatus equipped with a storing device which stores in advance a control program made up of an update program used for download of a new control program and a non-update program used for processing other than the download of the new control program, the new control program being made up of a new update program and a new non-update program, the control program downloading method including: a first controlling step for executing the update program stored in the storing device to receive the new update program and write the received new update program over the non-update program stored in a first area in the storing device; and a second controlling step for executing, once the first controlling step has finished writing the new update program into the storing device, the new update program to receive the new non-update program and write the received new non-update program over data stored in a second area in the storing device aside from an area where the new update program that is currently being used is stored, wherein the new update program is divided into divisions which are each accompanied by a first identifier and a serial number, and is received in units of divisions, wherein the new non-update program is divided into divisions which are each accompanied by a second identifier and a serial number, and is received in units of divisions, wherein in the first controlling step, if the first identifier is appended to a received division of the new control program, the received division is judged as belonging to the new update program and a location where the received division is to be written is specified within the first area based on a serial number appended to the received division, and wherein in the second controlling step, if the second identifier is appended to a received division of the new control program, the received division is judged as belonging to the new non-update program and a location where the received division is to be written is specified within the second area based on a serial number appended to the received division.
With the above construction, only after the received new update program is written over the non-update program prestored in an area in the storing device and then copied from the area to an area where the update program is prestored, the new non-update program is written over the new update program in the area from which the new update program was copied. Accordingly, even when a malfunction such as power failure occurs while, for instance, the new update program is being copied, it can be ensured that at least one of the prestored update program and the new update program exists in the storing device in complete form.
Therefore, the program receiving apparatus can securely rewrite the control program without being equipped with a memory specifically used for rewriting the control program.
Also, the program receiving apparatus refers to a serial number of each division to specify an address in which the division is to be written into the storing device, so that the download processing can be promptly conducted regardless of the transmission sequence of each division.
Which is to say, the download processing can be started from any division, with it being possible to reduce the cycle wait time.
The above object can also be fulfilled by a control program transmitting method for transmitting a control program of a digital broadcast receiving apparatus, the control program transmitting method including: an acquiring step for acquiring the control program made up of an update program to be used in the digital broadcast receiving apparatus for download of the control program and a non-update program to be used in the digital broadcast receiving apparatus for processing other than the download of the control program; a separating step for separating the non-update program into a first non-update program whose data size is no smaller than the update program and a second non-update program other than the first non-update program; a dividing step for dividing each of the update program, the first non-update program, and the second non-update program into divisions which are each accompanied by a serial number; an identifier appending step for appending a first identifier to each division of the update program, a second identifier to each division of the first non-update program, and a third identifier to each division of the second non-update program; and a transmitting step for repeatedly transmitting, in sequence, every division to which any of the first identifier, the second identifier, and the third identifier is appended.
The above object can also be fulfilled by a control program transmitting method for transmitting a control program of a digital broadcast receiving apparatus, the control program transmitting method including: a control program acquiring step for acquiring the control program which is made up of an update program to be used in the digital broadcast receiving apparatus for download of the control program and a non-update program to be used in the digital broadcast receiving apparatus for processing other than the download of the control program; a data size acquiring step for acquiring a data size obtained by subtracting a size of an area prepared in the digital broadcast receiving apparatus for an increase of codes associated with download of the non-update program, from a data size of the update program; a separating step for separating the non-update program into a first non-update program whose data size is no smaller than the data size acquired in the data size acquiring step and a second non-update program other than the first non-update program; a dividing step for dividing each of the update program, the first non-update program, and the second non-update program into divisions which are each accompanied by a serial number; an identifier appending step for appending a first identifier to each division of the update program, a second identifier to each division of the first non-update program, and a third identifier to each division of the second non-update program; and a transmitting step for repeatedly transmitting, in sequence, every division to which any of the first identifier, the second identifier, and the third identifier is appended.
The above object can also be fulfilled by a control program downloading method that is used by a digital broadcast receiving apparatus equipped with a storing device which stores in advance a control program made up of an update program used for download of a new control program and a non-update program used for processing other than the download of the new control program, the new control program being made up of a new update program and a new non-update program, the control program downloading method including: a judging step for repeatedly judging whether writing of the new update program has been completed, having a first controlling step operate until completion of the writing of the new update program, and having a second controlling step operate after the completion of the writing of the new update program; the first controlling step for executing the update program stored in the storing device to receive the new update program and write the received new update program over data stored in a first area in the storing device that is a part of an area where the non-update program has been stored, and, at the same time, receive a first non-update program which is a part of the new non-update program and write the received first non-update program over data stored in a second area, aside from the first area, that is a part of the area where the non-update program has been stored; and the second controlling step for executing the new update program written in the storing device to take over reception and writing of the first non-update program and , at the same time, receive a second non-update program which is a part of the new non-update program other than the first non-update program and write the received second non-update program over data stored in a third area in the storing device aside from the second area and an area where the new update program which is currently being used is stored.
With the above construction, while the new update program is being written into the first area, the first non-update program can be written into the second area. Accordingly, the digital broadcast receiving apparatus does not need to be equipped with a memory specifically used for rewriting the control program, and the time taken for the download processing can be shortened.
Here, when it is judged in the judging step that the writing of the new update program has been completed, the second controlling step may copy the new update program written in the first area to an area in the storing device where the update program has been stored, and execute the copied new update program.
With this construction, only after the new update program written in the first area is copied to an area in the storing device where the update program has been prestored, the second non-update program is written into the first area. Accordingly, even when a malfunction such as power failure occurs while, for example, the new update program is being copied, it can be ensured that at least one of the prestored update program and the new update program exists in the storing device in complete form.
As a result, the control program can be safely rewritten without affecting the control operation of the digital broadcast receiving apparatus.
Here, the new update program may be divided into divisions which are each accompanied by a first identifier and a serial number, and be received in units of divisions, wherein the first non-update program is divided into divisions which are each accompanied by a second identifier and a serial number, and is received in units of divisions, wherein the second non-update program is divided into divisions which are each accompanied by a third identifier and a serial number, and is received in units of divisions, wherein in the first controlling step, if the first identifier is appended to a received division of the new control program, the received division is judged as belonging to the new update program and a location where the received division is to be written is specified within the first area based on a serial number appended to the received division, while if the second identifier is appended to the received division, the received division is judged as belonging to the first non-update program and a location where the received division is to be written is specified within the second area based on a serial number appended to the received division, and wherein in the second controlling step, if the third identifier is appended to a received division of the new control program, the received division is judged as belonging to the second non-update program and a location where the received division is to be written is specified within the third area based on a serial number appended to the received division.
With this construction, the digital broadcast receiving apparatus refers to a serial number of each division to specify an address in the storing device in which the division is to be written. Since the download processing does not depend on the transmission sequence of each division, the reception of the new control program can be started from any division, with it being possible to save the cycle wait time.
The above object can also be fulfilled by a control program transmitting method for transmitting a control program of a digital broadcast receiving apparatus, the control program transmitting method including: an acquiring step for acquiring the control program which is made up of an update program to be used in the digital broadcast receiving apparatus for download of the control program and a non-update program to be used in the digital broadcast receiving apparatus for processing other than the download of the control program; a separating step for separating a first portion from the non-update program, combining the first portion with the update program to form a first control program whose data size is approximately 1/M of the control program, separating a second portion whose data size is equal to the first control program from the non-update program aside from the first portion, setting the second portion as a second control program, and dividing the non-update program aside from the first portion and the second portion by approximately (Mxe2x88x922) into third to Mth control programs, where M is an even number no less than 4; a dividing step for dividing each of the first control program, the second control program, and the third to Mth control programs into divisions of similar size; an identifier appending step for appending a first identifier and a second identifier respectively to each division of the first control program and each division of the second control program, evenly sorting the third to Mth control programs into a first program group and a second program group, and appending a third identifier and a fourth identifier respectively to each division of the first program group and each division of the second program group; and a transmitting step for repeatedly transmitting, when every division with any of the first identifier and the third identifier is grouped as a first set and every division with any of the second identifier and the fourth identifier is grouped as a second set, the first set and the second set alternately in units of divisions.
With this construction, the new control program is repeatedly transmitted according to the above sequence, so that the cycle wait time can be saved and the download processing can be accelerated.
The above object can also be fulfilled by a control program transmitting method for transmitting a control program of a digital broadcast receiving apparatus, the control program transmitting method including: an acquiring step for acquiring the control program made up of subprograms of different types; a dividing step for dividing each of the subprograms into divisions; an appending step for appending, to each of the divisions, a current identifier specifying a type of a subprogram which the division belongs to, priority information showing a priority subprogram which is given priority for being downloaded, and concurrency information showing a concurrency subprogram which can be downloaded concurrently with the priority subprogram; and a transmitting step for repeatedly transmitting, in sequence, every division to which the current identifier, the priority information, and the concurrency information is appended.
The above object can also be fulfilled by a control program downloading method that is used by a digital broadcast receiving apparatus to download a transmitted control program of the digital broadcast receiving apparatus, the control program being made up of subprograms of different types which are each divided into divisions and are repeatedly transmitted in a predetermined sequence in units of divisions, each of the divisions being accompanied by a current identifier specifying a type of a subprogram that the division belongs to, the control program downloading method including: a receiving step for receiving the subprograms in units of divisions; a judging step for judging, with reference to a current identifier appended to a received division, whether the received division belongs to a priority subprogram which is given priority for being downloaded, a concurrency subprogram which can be downloaded concurrently with the priority subprogram, or a subprogram which is neither the priority subprogram nor the concurrency subprogram; and a downloading step for downloading the received division which is judged as belonging to any of the priority subprogram and the concurrency subprogram.
With the above construction, the concurrency program can be downloaded without waiting for the download of the priority program to be completed. Accordingly, the download processing time can be reduced to a relatively short time.
The above object can also be fulfilled by a computer-readable storing medium storing a control program of a digital broadcast receiving apparatus, the control program being characterized in that: the control program is made up of subprograms of different types which are each divided into divisions; and each of the divisions is accompanied by a current identifier specifying a type of a subprogram which the division belongs to, priority information showing a priority subprogram that is given priority for being downloaded, and concurrency information showing a concurrency subprogram that can be downloaded concurrently with the priority subprogram.
With this construction, each division of the new control program is stored in the storing medium together with its current identifier, priority information, and concurrency information.
Accordingly, the digital broadcast receiving apparatus that receives this storing medium can download the concurrency subprogram concurrently with the priority subprogram, so that the download processing can be completed within a relatively short time.